package com.example.javabasic.suanfa.剑指offer.斐波那契数列;

/**
 * @description 斐波那契数列
 * @Author Lin FuYuan
 * @date 2021/7/6
 */
public class Solution {
    //大家都知道斐波那契数列，现在要求输入一个整数n，请你输出斐波那契数列的第n项（从0开始，第0项为0，第1项是1）。
    //n≤39
    //此方法递归, 但是 时间复杂度高
    public int Fibonacci(int n) {
        if(n ==0){
            return 0;
        }
        if(n ==1){
            return 1;
        }
        return Fibonacci(n-1)+Fibonacci(n-2);
    }

    // 0 1 1 2 3 5
    //第二种方法 , 时间复杂度 On
    public int Fiboancci2(int n){
        if(n<2){
            return n;
        }
        int f0 = 0;
        int f1 = 1;
        int x  = 2;
        while(x<n){
            x++;
            int w = f0;
            f0 = f1;
            f1 = w+f1;
        }
        return f0+f1;
    }
}
